package interview.huawei.tjt.training.huaweijishitiku;

import java.util.Scanner;

// 判断两个IP是否属于同一子网
public class HJ39 {

    public static void main(String[] args) {

        Scanner sc = new Scanner(System.in);

        while ( sc.hasNextLine() ) {

            String ip1 = sc.nextLine();
            String ip2 = sc.nextLine();
            String ip3 = sc.nextLine();

            boolean bool1 = ziWangIsTrue(ip1);
            boolean bool2 = isTrue(ip2);
            boolean bool3 = isTrue(ip3);

            if ( bool1 && bool2 && bool3 ) {
                System.out.println(isCommon(ip1,ip2,ip3));
            } else {
                System.out.println( "1" );
            }

        }

    }

    // 判断ip是否合法
    public static boolean isTrue ( String str ) {

        String[] ip = str.split("\\.");
        if ( ip.length == 4 && Long.parseLong(ip[0]) < 256 && Long.parseLong(ip[0]) > 0
                && Long.parseLong(ip[1]) < 256 && Long.parseLong(ip[1]) >= 0
                && Long.parseLong(ip[2]) < 256 && Long.parseLong(ip[2]) >= 0
                && Long.parseLong(ip[3]) < 256 && Long.parseLong(ip[3]) >= 0 ) {
            return true;
        } else {
            return false;
        }

    }

    // 判断子网掩码是否合法
    public static boolean ziWangIsTrue ( String str ) {

        String[] ip = str.split("\\.");
        if ( ip.length == 4 && Long.parseLong(ip[0]) < 256 && Long.parseLong(ip[1]) < 256 && Long.parseLong(ip[2]) < 256 && Long.parseLong(ip[3]) < 256 ) {
            if ( (Long.parseLong(ip[3]) > 0 && Long.parseLong(ip[2]) == 255 && Long.parseLong(ip[1]) == 255 && Long.parseLong(ip[0]) == 255)
                || (Long.parseLong(ip[3]) == 0 && Long.parseLong(ip[2]) > 0 && Long.parseLong(ip[1]) == 255 && Long.parseLong(ip[0]) == 255)
                    || (Long.parseLong(ip[3]) == 0 && Long.parseLong(ip[2]) == 0 && Long.parseLong(ip[1]) > 0 && Long.parseLong(ip[0]) == 255)
                        || (Long.parseLong(ip[3]) == 0 && Long.parseLong(ip[2]) == 0 && Long.parseLong(ip[1]) == 0 && Long.parseLong(ip[0]) > 0) ) {
                return true;
            } else {
                return false;
            }
        } else {
            return false;
        }

    }

    // 判断两个ip是否属于同一个子网
    public static int isCommon ( String ip1, String ip2, String ip3 ) {

        String[] num1 = ip1.split("\\.");
        String[] num2 = ip2.split("\\.");
        String[] num3 = ip3.split("\\.");

        if ( (Long.parseLong(num2[0]) & Long.parseLong(num1[0])) == (Long.parseLong(num3[0]) & Long.parseLong(num1[0])) &&
                (Long.parseLong(num2[1]) & Long.parseLong(num1[1])) == (Long.parseLong(num3[1]) & Long.parseLong(num1[1])) &&
                (Long.parseLong(num2[2]) & Long.parseLong(num1[2])) == (Long.parseLong(num3[2]) & Long.parseLong(num1[2])) &&
                (Long.parseLong(num2[3]) & Long.parseLong(num1[3])) == (Long.parseLong(num3[3]) & Long.parseLong(num1[3])) ) {
            return 0;
        } else {
            return 2;
        }

    }

}
